namespace Brjnk.GpxExplorer.Workspace.BitmapExport
{
    /// <summary>
    /// </summary>
    public class WaypointLabelStyle : GeoObjectLabelStyle
    {
        static WaypointLabelStyle()
        {
            DefineInheritableValue("ShowWptCoordinates", true);
            DefineInheritableValue("ShowWptComment", false);
            DefineInheritableValue("ShowWptDescription", false);
            DefineInheritableValue("ShowWptElevation", true);
            DefineInheritableValue("ShowWptTime", true);
            DefineInheritableValue("ShowGcName", false);
            DefineInheritableValue("ShowGcDTSize", false);
            DefineInheritableValue("ShowGcHint", false);
        }

        public WaypointLabelStyle() { }

        public WaypointLabelStyle(WaypointLabelStyle parent)
            : base(parent) { }

        public bool ShowWptCoordinates
        {
            get { return base.GetValue<bool>("ShowWptCoordinates"); }
            set { base.SetValue("ShowWptCoordinates", value); }
        }

        public bool IsShowWptCoordinatesLocal
        {
            get { return base.IsLocalGetter("ShowWptCoordinates"); }
            set { base.IsLocalSetter("ShowWptCoordinates", value); }
        }

        public bool ShowWptComment
        {
            get { return base.GetValue<bool>("ShowWptComment"); }
            set { base.SetValue("ShowWptComment", value); }
        }

        public bool IsShowWptCommentLocal
        {
            get { return base.IsLocalGetter("ShowWptComment"); }
            set { base.IsLocalSetter("ShowWptComment", value); }
        }

        public bool ShowWptDescription
        {
            get { return base.GetValue<bool>("ShowWptDescription"); }
            set { base.SetValue("ShowWptDescription", value); }
        }

        public bool IsShowWptDescriptionLocal
        {
            get { return base.IsLocalGetter("ShowWptDescription"); }
            set { base.IsLocalSetter("ShowWptDescription", value); }
        }

        public bool ShowGcHint
        {
            get { return GetValue<bool>("ShowGcHint"); }
            set { SetValue("ShowGcHint", value); }
        }

        public bool ShowWptElevation
        {
            get { return base.GetValue<bool>("ShowWptElevation"); }
            set { base.SetValue("ShowWptElevation", value); }
        }

        public bool IsShowWptElevationLocal
        {
            get { return base.IsLocalGetter("ShowWptElevation"); }
            set { base.IsLocalSetter("ShowWptElevation", value); }
        }

        public bool ShowWptTime
        {
            get { return base.GetValue<bool>("ShowWptTime"); }
            set { base.SetValue("ShowWptTime", value); }
        }

        public bool IsShowWptTimeLocal
        {
            get { return base.IsLocalGetter("ShowWptTime"); }
            set { base.IsLocalSetter("ShowWptTime", value); }
        }

        public bool ShowGcDTSize
        {
            get { return base.GetValue<bool>("ShowGcDTSize"); }
            set { base.SetValue("ShowGcDTSize", value); }
        }

        public bool IsShowGcDTSizeLocal
        {
            get { return base.IsLocalGetter("ShowGcDTSize"); }
            set { base.IsLocalSetter("ShowGcDTSize", value); }
        }

        public bool IsShowGcHintLocal
        {
            get { return base.IsLocalGetter("ShowGcHint"); }
            set { base.IsLocalSetter("ShowGcHint", value); }
        }

        public bool ShowGcName
        {
            get { return base.GetValue<bool>("ShowGcName"); }
            set { base.SetValue("ShowGcName", value); }
        }

        public bool IsShowGcNameLocal
        {
            get { return base.IsLocalGetter("ShowGcName"); }
            set { base.IsLocalSetter("ShowGcName", value); }
        }
    }
}